package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.SplitMergeReqList;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SplitMergeReqListMapper {
    int deleteByPrimaryKey(String id);

    int insert(SplitMergeReqList record);

    int insertSelective(SplitMergeReqList record);

    SplitMergeReqList selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(SplitMergeReqList record);

    int updateByPrimaryKey(SplitMergeReqList record);

    /**
     * 查询房屋合并/拆分审核列表
     *
     * @param splitMergeReqList 查询实体
     *                          regionNo 小区编码
     *                          regionName 小区名称
     *                          createTime 申请开始时间
     *                          updateTime 申请结束时间
     *                          creater 申请人
     * @return 查询结果
     */
    List<SplitMergeReqList> getSplitMergeAuditList(SplitMergeReqList splitMergeReqList);

    /**
     * 修改split_merge_req_list表的状态
     *
     * @param id       split_merge_req_list的ID
     * @param modifier 操作人
     * @param state    状态：0保存  1审核中  2审核成功   3审核失败
     * @return
     */
    int updateState(@Param("id") String id, @Param("state") String state, @Param("modifier") String modifier);

    /**
     * 模糊查询房屋合并/拆分审变更查询列表
     *
     * @param zoneCode   管理区域
     * @param fuzzyParam 模糊查询参数
     * @return 查询结果
     */
    List<SplitMergeReqList> getSplitMergeAuditListFuzzy(@Param("fuzzyParam") String fuzzyParam, @Param("zoneCode") String zoneCode);

    /**
     * 检验房屋是否存在拆分合并在途业务
     *
     * @param houseId 房屋ID
     * @return 结果
     */
    String checkHouseId(String houseId);

    /**
     * 查询房屋是否存在使用在途业务
     *
     * @param houseId 房间ID
     * @return 使用业务ID
     */
    String checkExpProject(String houseId);

    /**
     * 查询房屋是否存在交存在途业务
     *
     * @param houseId
     * @return
     */
    String checkDep(String houseId);

    /**
     * 查询房屋是否存在房屋调换在途业务
     *
     * @param houseId 房间ID
     * @return 变更ID
     */
    String checkChange(String houseId);

    /**
     * 校验退款中是否存在在途业务
     *
     * @param houseId 房间ID
     * @return 退款ID
     */
    String checkRef(String houseId);
}